package com.todod.common.util;

import java.util.List;
import java.util.Optional;

import org.apache.commons.lang.StringUtils;

import com.todod.entity.ErrorExcelMsg;
import com.todod.model.Dict;

public class CheckExcelData {
	/**
	 * 校验空
	 *
	 * @Title: checkNull
	 * @Description:
	 * @author gsh
	 * @date 2019年8月9日
	 * @param sheetName
	 * @param i
	 * @param j
	 * @param data
	 * @param cellName
	 * @return
	 */
	public static ErrorExcelMsg checkNull(String sheetName, int i, String j, String data, String cellName) {
		ErrorExcelMsg errorExcelMsg = null;
		if (StringUtils.isBlank(data)) {
			errorExcelMsg = new ErrorExcelMsg(sheetName, (i + 1) + "", j, "错误：" + cellName + "不能为空", data);
		}
		return errorExcelMsg;
	}

	/**
	 * 校验正整数
	 *
	 * @Title: checkJustInteger
	 * @Description:
	 * @author gsh
	 * @date 2019年8月9日
	 * @param sheetName
	 * @param i
	 * @param j
	 * @param date
	 * @return
	 */
	public static ErrorExcelMsg checkJustInteger(String sheetName, int i, String j, String data, String cellName) {
		ErrorExcelMsg errorExcelMsg = null;
		if (StringUtils.isBlank(data)) {
			errorExcelMsg = new ErrorExcelMsg(sheetName, (i + 1) + "", j, "错误：" + cellName + "不能为空", data);
		} else {
			if (CheckData.isIntNumeric(data)) {
				errorExcelMsg = new ErrorExcelMsg(sheetName, (i + 1) + "", j, "错误：" + cellName + "格式不正确，应为大于零的正整数",
						data);
			}

		}
		return errorExcelMsg;
	}

	/**
	 * 校验业务字典是否在数据库存在
	 *
	 * @Title: checkDictType
	 * @Description:
	 * @author dyl
	 * @date 2019-09-26
	 * @param sheetName
	 * @param i
	 * @param j
	 * @param khType
	 * @param zdList
	 * @param cellName
	 * @return
	 */
	public static ErrorExcelMsg checkDictName(String sheetName, int i, String j, String khType, List<Dict> zdList,
											  String cellName) {
		ErrorExcelMsg errorExcelMsg = null;

		if (StringUtils.isBlank(khType)) {
			errorExcelMsg = new ErrorExcelMsg(sheetName, (i + 1) + "", j, "错误：" + cellName + "不能为空", khType);
		} else {
			Optional<Dict> optional = zdList.stream().filter((x) -> x.getName().equalsIgnoreCase(khType)).findFirst();
			if (!optional.isPresent()) {
				errorExcelMsg = new ErrorExcelMsg(sheetName, (i + 1) + "", j, "错误：" + cellName + "在数据库中不存在", khType);
			}
		}

		return errorExcelMsg;
	}

}
